# MWRhythm v1.0.1

MWRhythm is a rhythm "minigame" mod built for **Need for Speed: Most Wanted (2005)**.

This project is a fork of **CarbonRhythm**, originally created for **Need for Speed: Carbon**, and has been ported to **Need for Speed: Most Wanted**.

---

## Features

* 6-lane rhythm input system
* Car animations
* Beat-synced scrolling notes
* Judgement system (Perfect / Good / Bad / Miss)
* Combo and multiplier system
* Accuracy calculation
* Custom beatmap support
* Visual overlay with animated UI elements

---

## HOW TO'S

## Install & Play

1. Extract the files from the zip to the root folder of your game.
2. In game, press **F2** to show the mod's menu.
3. Use **IJKL** keys for menu navigation:

   * **I / K** for Up / Down
   * **J / L** for Enter / Return
4. Use **IJKLUO** keys for playing.

*Also make sure you turn all in-game music off for a better experience.*

## Change Configurations

1. Open `scripts/MWRhythm.ini`.
2. Configure keys if needed.
   You can look up Virtual-Key Codes on Google.
3. Configure beatmap recording settings if needed.
4. If you want to edit the config without restarting the game, use the **Reload Config** option in the mod's menu.

## Record Custom Beatmap

1. Open the `scripts/MWRhythm.ini` file.

2. Put your audio file in the `MWRhythmAssets/maps/` folder.
   MP3 is recommended.

3. Go to `MWRhythm.ini`, then put your audio path and file name in the `AudioPath` option under `[Recorder]`.

4. Put your preferred output beatmap name in `OutputName`.

5. Find out the BPM of the song.
   You can usually search for `"<song name> BPM"` on Google.

6. Put the BPM value in both `BPM` and `JellyBPM`.

7. If your song has an audio offset, such as a delayed start or an intro that does not begin exactly on beat, put the offset value in `Offset`, using milliseconds.
   You can ignore this if you do not want to use quantization.

8. Put your preferred quantization division if needed.
   A value of `4` is fine for most songs.

   If:

   * the song has fluctuating tempo / BPM,
   * you want full control of where your notes land, or
   * your audio is not aligned to the beat,

   you can simply put `0` to disable quantization.

9. Configure difficulty settings, including beat windows for scoring and judgement, if needed.

10. Configure your Dance Settings, which control how the car dances, if needed.

11. Configure metadata if needed, including Title, Artist, and Difficulty.
    These will show up in the Beatmap Select menu.

12. In the mod menu, reload the config if you do not want to restart the game.

13. Go to the Beatmap Recording menu.

14. If all the settings shown in game are correct, press **ENTER** to start recording.

15. When you are done, press **F4** to stop recording.

16. Check the Beatmap Select menu.
    Your new beatmap should be shown automatically.

---

## Controls

Default lane keys:

* Lane 1 - U
* Lane 2 - J
* Lane 3 - K
* Lane 4 - I
* Lane 5 - L
* Lane 6 - O

Key bindings may depend on your game input configuration.

---

## Included Beatmaps

* Muscle Theme
* Tuner Theme (Remix)

---

## Notes

* This mod is made for the PC version of **Need for Speed: Most Wanted (2005)**.
* This mod is still in development, so bugs or issues may occur.
* Since this is a fork and port of CarbonRhythm, some behavior may still be adjusted in future versions.

---

## Troubleshooting

If the mod does not load:

* Ensure you are using the correct game version.
* Ensure the files were extracted to the correct game root folder.
* Ensure you have Microsoft Visual C++ x86 Redistributable installed.
* If Widescreen Fix or ExOpts works in your game, this mod should usually be able to load as well.

---

## Disclaimer

This project is a fan-made modification.
Need for Speed: Most Wanted is owned by Electronic Arts.
This mod is not affiliated with or endorsed by EA Games.

---

## Credits & Thanks

* giovannosaur / nismofan - Original author of CarbonRhythm
* ThirteenAG - Ultimate ASI Loader
* Zolika1351 - NFSC-SDK references
* MinHook - Hooking library
* nlohmann/json - JSON library
* BASS Audio Library - Audio playback support
* ShifterSC & Szymkim2134 - Later maintenance
* Lee-Ryo - Special thanks for creating the new UI skin

---

## License

MinHook is licensed under the BSD 2-clause license.
nlohmann/json is licensed under the MIT license.
BASS is free for non-commercial use.
